In network communications systems, call recipients can receive a large volume of phone calls from different parties. Some incoming calls can be interruptions if the call recipient is busy with projects or deadlines. Other calls can be important and are answered even if the recipient is busy, such as calls from the recipient's supervisor or team collaborators.
In order to manage calls, call routing is performed. A call routing rule is applied to incoming calls, which can be routed according to priority. Calls from unknown callers or callers identified as low priority callers can be assigned a routing rule so that such calls are routed directly to voicemail, for example. High priority calls from a supervisor or team collaborators, for example, can be assigned a routing rule that allows the calls through to the recipient's phone.
In a typical network communications system, call routing can only be done for a single identity of a caller, such as a SIP URI of the caller of the form sip:someone@somewhere.com, as supported by a network communications server, or an internal numeric telephone number extension. An example of call routing is conditional forwarding if a call that is received originated from a specific extension.
Nowadays, a specific caller can have multiple identities such as that from free voice calling websites, mobile phone numbers, etc. People often exchange this contact information in business cards, enter the information in social networking applications, or maintain the information in customer applications by businesses, for example. Although call routing works well for a single phone number, having many identities from which calls can originate make call routing a complex, if not impossible, undertaking. This becomes even more problematic with the federation of public Internet clouds where an instant messaging client can initiate an IP voice call.